package com.ruoyi.project.manage.invest.service;

import java.util.List;
import com.ruoyi.project.manage.invest.domain.ProjectInvest;
import com.ruoyi.project.manage.project.domain.Project;

/**
 * 资金落实记录Service接口
 * 
 * @author fangkun
 * @date 2022-03-28
 */
public interface IProjectInvestService 
{
    /**
     * 查询资金落实记录
     * 
     * @param projectInvestId 资金落实记录主键
     * @return 资金落实记录
     */
    ProjectInvest selectProjectInvestByProjectInvestId(Long projectInvestId);

    /**
     * 查询资金落实记录列表
     * 
     * @param projectInvest 资金落实记录
     * @return 资金落实记录集合
     */
    List<ProjectInvest> selectProjectInvestList(ProjectInvest projectInvest);

    /**
     * 新增资金落实记录
     * 
     * @param projectInvest 资金落实记录
     * @return 结果
     */
    int insertProjectInvest(ProjectInvest projectInvest);

    /**
     * 修改资金落实记录
     * 
     * @param projectInvest 资金落实记录
     * @return 结果
     */
    int updateProjectInvest(ProjectInvest projectInvest);

    /**
     * 上报资金落实记录
     * @param projectId 项目ID
     * @return 结果
     */
    int submit(int projectId);

    /**
     * 撤回资金落实记录
     * @param projectId 项目ID
     * @return 结果
     */
    int withdraw(int projectId);

    /**
     * 拒绝资金落实记录
     *
     * @param project 项目信息
     * @return 项目信息
     */
    int reject(Project project);

    /**
     * 资金落实记录入库
     * @param projectId 项目ID
     * @return 结果
     */
    int agree(int projectId);
    /**
     * 批量删除资金落实记录
     * 
     * @param projectInvestIds 需要删除的资金落实记录主键集合
     * @return 结果
     */
    int deleteProjectInvestByProjectInvestIds(String projectInvestIds);

    /**
     * 删除资金落实记录信息
     * 
     * @param projectInvestId 资金落实记录主键
     * @return 结果
     */
    int deleteProjectInvestByProjectInvestId(Long projectInvestId);
}
